package br.com.manutencaocarro.dao;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper 
{
	private static final String DATABASE = "ManutencoesCarro";
	private static Context CONTEXT;
	private static final int VERSAO = 1;

	public DatabaseHelper( Context context ) {
		super( context, DATABASE, null, VERSAO );
		setCONTEXT(context);
	}

	@Override
	public void onCreate(SQLiteDatabase db) 
	{
		String ddl = "CREATE TABLE Carros (id_carro INTEGER PRIMARY KEY, " +
				" modelo TEXT NOT NULL, " +
				" id_montadora REAL, " +
				" nome_montadora TEXT NOT NULL, " +
				" ano_fabricacao TEXT NOT NULL, " +
				" ano_modelo TEXT NOT NULL, " +
				" numPortas REAL );";

		db.execSQL(ddl);

		ddl = "CREATE TABLE Pecas (id_peca INTEGER PRIMARY KEY AUTOINCREMENT, " +
				" nome_peca TEXT NOT NULL, " +
				" quantidade REAL NOT NULL, " +
				" valor_peca FLOAT," +
				" unidade TEXT NOT NULL," + 
				" dataCompra DATE," +
				" id_carro REAL," +
				" id_loja REAL );";

		db.execSQL(ddl);
		
		ddl = "CREATE TABLE Lojas (id_loja INTEGER PRIMARY KEY AUTOINCREMENT," +
			  " nome_loja TEXT NOT NULL, " +
			  " end_loja TEXT," +
			  " numero_loja REAL, " +
			  " nome_vendedor TEXT, " +
			  " tel_contato TEXT, " +
			  " nota_atendimento REAL," +
			  " id_peca REAL," +
			  " dataCadastro DATE );";
		
		db.execSQL(ddl);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		String ddl = "DROP TABLE IF EXISTS Carros;";
		db.execSQL(ddl);

		ddl = "DROP TABLE IF EXISTS Pecas;";
		db.execSQL(ddl);
		
		ddl = "DROP TABLE IF EXISTS Lojas;";
		db.execSQL(ddl);

		this.onCreate(db);
	}

	public Context getCONTEXT() {
		return CONTEXT;
	}

	public static void setCONTEXT(Context context) {
		CONTEXT = context;
	}

	public static class Carro{
		public static final String TABELA = "Carros";
		public static final String ID_CARRO = "id_carro";
		public static final String MODELO_CARRO = "modelo";
		public static final String ANO_FABRICACAO = "ano_fabricacao";
		public static final String ANO_MODELO = "ano_modelo";
		public static final String NUM_PORTAS = "numPortas";
		public static final String ID_MONTADORA = "id_montadora";
		public static final String NOME_MONTADORA = "nome_montadora";
		
		public static final String[] COLUNAS = new String[]{ ID_CARRO, MODELO_CARRO, ANO_FABRICACAO, ANO_MODELO, NUM_PORTAS, ID_MONTADORA, NOME_MONTADORA };
	}
	
	public static class Peca{
		public static final String TABELA = "Pecas";
		public static final String ID_PECA = "id_peca";
		public static final String ID_LOJA = "id_loja";
		public static final String NOME_PECA = "nome_peca"; 
		public static final String QUANTIDADE = "quantidade";
		public static final String UNIDADE = "unidade"; 
		public static final String VALOR_PECA = "valor_peca"; 
		public static final String DATA_COMPRA = "dataCompra";
		public static final String ID_CARRO = "id_carro";
		public static final String[] COLUNAS = new String[]{ ID_PECA, NOME_PECA, QUANTIDADE, UNIDADE, VALOR_PECA, DATA_COMPRA, ID_CARRO, ID_LOJA };
	}
	
	public static class Loja{
		public static final String TABELA = "Lojas";
		public static final String ID_LOJA = "id_loja";
		public static final String NOME = "nome_loja";
		public static final String ENDERECO_LOJA = "end_loja";
		public static final String NUMERO_LOJA = "numero_loja";
		public static final String NOME_VENDEDOR = "nome_vendedor";
		public static final String TEL_CONTATO = "tel_contato";
		public static final String NOTA_ATENDIMENTO = "nota_atendimento";
		public static final String DATA_CADASTRO = "dataCadastro";
		public static final String[] COLUNAS = new String[]{ ID_LOJA, NOME, ENDERECO_LOJA, NUMERO_LOJA, NOME_VENDEDOR, TEL_CONTATO, NOTA_ATENDIMENTO, DATA_CADASTRO };
	}
}